"""
    透视变换 与 仿射变换不同
    仿射变换针对的一个平面换到另一个平面，保持平直性和平行性
    透视变换会改变观察物体视角，可以做“鸟瞰图” 做“文档矫正”，不在保证平行性
"""

import cv2
import numpy as np

img = cv2.imread("../images/youhua.png")
cv2.imshow("youhua", img)

# 进行透视变化
# 1. 获取透视变换矩阵
# 原图像的四个点
src = np.array([
    [175, 143],
    [623, 36],
    [652, 549],
    [90, 489]], dtype="f4"
)
# 目标图像的四个点
dst = np.array([
    [90, 36],
    [623, 36],
    [652, 549],
    [90, 549]
], dtype="f4")

M = cv2.getPerspectiveTransform(src, dst)

h, w, _ = img.shape
# 进行变换
per_img = cv2.warpPerspective(img, M, (w, h))
cv2.imshow("per_img", per_img)

cv2.waitKey(0)
